// MainApplication.java
package exercise.jslide.jslide.app;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
import exercise.jslide.jslide.view.MainView;
import javafx.stage.StageStyle;

public class MainApplication extends Application {
    private AppContext appContext;
    private MainView mainView;

    /**
     * 该方法的功能是创建一个新的 Scene 对象，并将其设置为主视图 mainView，
     * 同时指定场景的宽度和高度为 1024 和 768。
     * 这个 Scene 对象随后会被设置为主窗口的场景，从而显示主视图的内容
     * @param primaryStage
     */
    @Override
    public void start(Stage primaryStage) {
        // 初始化应用程序上下文
        appContext = AppContext.getInstance();

        // 创建主视图
        mainView = new MainView();

        // 设置主场景，将主视图设置为主场景
        Scene scene = new Scene(mainView, 1024, 768);
//        scene.getStylesheets().add(getClass().getResource("/styles/application.css").toExternalForm());

        // 设置主视图和主窗口
        appContext.setPrimaryStage(primaryStage);

        // 配置主窗口
        primaryStage.setTitle("JSlide演示文稿");
//        primaryStage.initStyle(StageStyle.UNDECORATED);//设定窗口无边框
        primaryStage.setScene(scene);
        // 设置窗口图标来自于resources文件夹下的exercise/jslide/jslide/app/icons文件夹下的LOGO.png
        primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/exercise/jslide/jslide/app/icons/LOGO.png")));
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);
    }
}